home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 22 / Amiga Format AFCD22 (Jan 1998, Issue 106).iso / -in_the_mag- / converters / graphics / netpbm / pbmrexx / rexx / pnmsmooth.rexx < prev   
OS/2 REXX Batch file  |  1997-11-16  |  2KB  |  69 lines

  1. /* pnmsmooth - smooth out an image by replacing each xel with the
  2.  *             average of its nine immediate neighbors
  3.  *
  4.  * Copyright (C) 1994 by Ingo Wilken (Ingo.Wilken@informatik.uni-oldenburg.de)
  5.  * Based on pnmsmooth (sh-script) by Jef Poskanzer
  6.  *
  7.  * Permission to use, copy, modify, and distribute this software and its
  8.  * documentation for any purpose and without fee is hereby granted, provided
  9.  * that the above copyright notice appear in all copies and that both that
  10.  * copyright notice and this permission notice appear in supporting
  11.  * documentation.  This software is provided "as is" without express or
  12.  * implied warranty.
  13.  *
  14.  *  $VER: pnmsmooth 1.1
  15.  */
  16. parse source junk junk progname junk
  17.  
  18. address command
  19. signal on error
  20. signal on break_c
  21. signal on break_d
  22. signal on ioerr
  23. signal on halt
  24. ID = pragma('Id')
  25.  
  26. if ~open(err, "CONSOLE:", 'W') then exit 20
  27.  
  28. parse arg first tail
  29. if abbrev(first, '-', 1) then call usage
  30. if tail ~= '' then call usage
  31.  
  32. tmp = 'T:psm.'ID
  33. call rm tmp
  34. if ~open(out, tmp, 'W') then exit 20
  35.  
  36. call writeln out, P2
  37. call writeln out, 3 3
  38. call writeln out, 18
  39. call writeln out, 10 10 10
  40. call writeln out, 10 10 10
  41. call writeln out, 10 10 10
  42. call writeln out, 10 10 10
  43. call close out
  44. 'pnmconvol' tmp first
  45. call rm tmp
  46. exit 0
  47.  
  48.  
  49. usage:
  50.     call writeln err, 'usage:' progname '[pnmfile]'
  51.     exit 10
  52.  
  53. rm: procedure
  54.     arg name
  55.     signal off error    /* ignore WARN */
  56.     'delete' name 'quiet force >NIL:'
  57.     signal on error
  58.     return
  59.  
  60. error:
  61. ioerr:
  62. halt:
  63.     call writeln err, progname ': error at line' SIGL 'code' RC
  64. break_c:
  65. break_d:
  66.     call rm tmp
  67.     exit 20
  68.  
  69.